$(function () {
    //判断用户名
    $('input[name = "username"]').blur(function () {
        if (!$(this).val()) {
            $(this).next().html("用户名不能为空").fadeIn();
        // 如果用户写了东西那么判断是否已经存在
        } else {
            $.post(
                "/user/ajax_experience_username",
                {
                    username: $('input[name="username"]').val(),
                    // csrf解封 ， form里面直接可以使用token 在这里必须已参数格式传送
                    csrfmiddlewaretoken: $(
                        'input[type="hidden"]'
                    ).val(),
                },
                function (data) {
                    let exsists = data["exsists"];
                    // 如果用户名已经存在 那么提示
                    if (exsists === 1) {
                        $('input[name = "username"]')
                            .next()
                            .html("用户名已存在")
                            .fadeIn();
                        // 如果没有这样的用户名那继续
                    } else {
                        $('input[name = "username"]')
                            .next()
                            .fadeOut();
                    }
                }
            );
        }
    });

    //判断密码
    $('input[name = "password"]').blur(function () {
        if ($(this).val().length < 8) {
            $(this).next().html("密码最少8位").fadeIn();
        } else {
            $(this).next().fadeOut();
        }
    });
    //确认密码
    $('input[name = "confirm_password"]').blur(function () {
        if ($(this).val().length < 8) {
            $(this).next().html("密码最少8位").fadeIn();
        } else if (
            $('input[name = "password"]').val() !=
            $('input[name = "confirm_password"]').val()
        ) {
            $(this).next().html("两次输入密码不一样").fadeIn();
        } else {
            $(this).next().fadeOut();
        }
    });
    //判断邮箱
    $('input[name = "email"]').blur(function () {
        if (
            !/^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*\.[a-z]{2,}$/.test(
                $(this).val()
            )
        ) {
            $(this).next().html("邮箱格式不对").fadeIn();
        } else {
            $(this).next().fadeOut();
        }
    });
    //判断用户协议
    $('input[type="checkbox"]').change(function () {
        if ($(this).prop("checked")) {
            $(this).parent().css("color", "#4e4e4e");
        }
    });

    //做一个标志
    let flag = false;
    // 防止什么都没有输入进去就点击注册按钮
    $('button[type="submit"]').click(function () {
        //判断用户名
        if (!$('input[name = "username"]').val()) {
            $('input[name = "username"]')
                .next()
                .html("用户名不能为空")
                .fadeIn();
        } else {
            // 这里也一样，如果写了东西就给他判断
            $.post(
                "/user/ajax_experience_username",
                {
                    username: $('input[name="username"]').val(),
                    csrfmiddlewaretoken: $(
                        'input[type="hidden"]'
                    ).val(),
                },
                function (data) {
                    let exsists = data["exsists"];
                    if (exsists === 1) {
                        $('input[name = "username"]')
                            .next()
                            .html("用户名已存在")
                            .fadeIn();
                    } else {
                        $('input[name = "username"]')
                            .next()
                            .fadeOut();
                        flag = true;
                    }
                }
            );
        }
        //判断密码
        if ($('input[name = "password"]').val().length < 8) {
            flag = false;
            $('input[name = "password"]')
                .next()
                .html("密码最少8位")
                .fadeIn();
        } else {
            $('input[name = "password"]').next().fadeOut();
            flag = true;
        }
        //确认密码
        if (
            $('input[name = "confirm_password"]').val().length < 8
        ) {
            flag = false;
            $('input[name = "confirm_password"]')
                .next()
                .html("密码最少8位")
                .fadeIn();
        } else if (
            $('input[name = "password"]').val() !=
            $('input[name = "confirm_password"]').val()
        ) {
            flag = false;
            $('input[name = "confirm_password"]')
                .next()
                .html("两次输入密码不一样")
                .fadeIn();
        } else {
            $('input[name = "confirm_password"]').next().fadeOut();
            flag = true;
        }
        //判断邮箱
        if (
            !/^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*\.[a-z]{2,}$/.test(
                $('input[name = "email"]').val()
            )
        ) {
            flag = false;
            $('input[name = "email"]')
                .next()
                .html("邮箱格式不对")
                .fadeIn();
        } else {
            $('input[name = "email"]').next().fadeOut();
            flag = true;
        }
        //判断用户协议
        if (!$('input[type="checkbox"]').prop("checked")) {
            flag = false;
            $('input[type="checkbox"]')
                .parent()
                .css("color", "red");
        } else {
            flag = true;
        }

        // 以上都对，转移相应网址存储数据
        if (flag) {
            $("form").prop("action", "register_handle");
        }
    });
});